/**
 * This file is part of 1genia trampoline
 * Copyright (C) 2007 1genia (contact@1genia.com)
 *
 * This library is free software; you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation; version 3 of the License. 
 *
 * This library is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details. 
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; see the file COPYING.TXT.  If not,
 * write to the Free Software Foundation, Inc., 51 Franklin Street,
 * Fifth Floor, Boston, MA 02110-1301, USA. 
 **/
package com.genia.toolbox.model.exemple.impl;

/**
 * <p>
 * This class is the delegate class associated to
 * com.genia.toolbox.model.exemple.A
 * </p>.
 */
class ADelegate
    implements com.genia.toolbox.model.exemple.F, com.genia.toolbox.model.exemple.C
{
  /**
   * the simulated {@link com.genia.toolbox.model.exemple.A}.
   */
  private com.genia.toolbox.model.exemple.A a;



  /**
   * constructor.
   * 
   * @param a
   *          the simulated {@link com.genia.toolbox.model.exemple.A}
   */
  ADelegate(final com.genia.toolbox.model.exemple.A a)
  {
    this.a = a;
  }



  /**
   * test operation for F.
   */
  public void getParam()
  {
    a.setFoo(2);
  }



  /**
   * a method comment getFoo3.
   * 
   * @param fooc3
   *          Foo Bar.
   * @param foo3
   *          comment for arg3.
   * @return a method comment getFoo3.
   */
  public Long getFoo3(final Integer fooc3, final Integer foo3)
  {
    return new Long(foo3 + foo3);
  }



  /**
   * a method getFoo.
   * 
   * @return a method getFoo.
   */
  public String getFoo4()
  {
    return "getFoo4 from aDelegate";
  }



  /**
   * test operation for interface F.
   * 
   * @param value
   *          test parameter.
   * @return test operation for interface F.
   */
  public String getVal(final String value)
  {
    return value;
  }

}
